/**
 *Copyright (c) 2024 watereyes
 * safetymanagement is licensed under Mulan PubL v2.
 * You can use this software according to the terms and conditions of the Mulan
 * PubL v2.
 * You may obtain a copy of Mulan PubL v2 at:
 *          http://license.coscl.org.cn/MulanPubL-2.0
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PubL v2 for more details.
 */
package com.koron.accident.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.koron.common.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

@ApiModel(value = "事故报告",description = "事故报告实体类")
public class AccidentReport extends BaseEntity {

    @ApiModelProperty(name = "corpCode",value = "水司code")
    private String corpCode;

    @ApiModelProperty(name = "corpName",value = "水司名称")
    private String corpName;

    @ApiModelProperty(name = "accidentBulletinId",value = "事故快报id")
    private String accidentBulletinId;

    @ApiModelProperty(name = "name",value = "事故名称")
    private String name;

    @ApiModelProperty(name = "accidentType",value = "事件类别")
    private String accidentType;

    @ApiModelProperty(name = "accidentTypeName",value = "事件类别名称")
    private String accidentTypeName;

    @ApiModelProperty(name = "accidentLevel",value = "严重级别，0一般，1较大，2重大，3特别重大")
    private Integer accidentLevel;

    @ApiModelProperty(name = "departmentCode",value = "事故单位code")
    private String departmentCode;

    @ApiModelProperty(name = "departmentName",value = "事故单位名称")
    private String departmentName;

    @ApiModelProperty(name = "occurrencePlace",value = "发生地点")
    private String occurrencePlace;

    @ApiModelProperty(name = "occurrenceTime",value = "发生时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date occurrenceTime;
    private String occurrenceTimeStr;

    @ApiModelProperty(name = "accidentContent",value = "事故经过")
    private String accidentContent;

    @ApiModelProperty(name = "accidentRescue",value = "事故救援")
    private String accidentRescue;

    @ApiModelProperty(name = "accidentLoss",value = "事故造成的损失")
    private String accidentLoss;

    @ApiModelProperty(name = "eventDirectReason",value = "事故直接原因")
    private String eventDirectReason;

    @ApiModelProperty(name = "eventIndirectReason",value = "事故间接原因")
    private String eventIndirectReason;

    @ApiModelProperty(name = "eventSystemReason",value = "事故系统原因")
    private String eventSystemReason;

    @ApiModelProperty(name = "rectificationRequirement",value = "整改要求")
    private String rectificationRequirement;

    @ApiModelProperty(name = "rectificationDeadline",value = "整改期限")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date rectificationDeadline;

    @ApiModelProperty(name = "completeTime",value = "整改实际完成日期")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date completeTime;
    private String completeTimeStr;

    @ApiModelProperty(name = "lossWorkingHours",value = "损工时")
    private BigDecimal lossWorkingHours;

    @ApiModelProperty(name = "remark",value = "备注")
    private String remark;

    @ApiModelProperty(name = "attachment",value = "附件")
    private String attachment;

    @ApiModelProperty(name = "previewAttachment",value = "转换pdf附件")
    private String previewAttachment;

    @ApiModelProperty(name = "rectifier",value = "整改负责人code")
    private String rectifier;

    @ApiModelProperty(name = "rectifierName",value = "整改负责人名称")
    private String rectifierName;

    @ApiModelProperty(name = "manager",value = "负责人code")
    private String manager;

    @ApiModelProperty(name = "managerName",value = "负责人名称")
    private String managerName;

    @ApiModelProperty(name = "status",value = "审批状态，0:审批中，1：审批完成，2：新增驳回，3：修改驳回，4：删除驳回",required = true)
    private Integer status;

    @ApiModelProperty(name = "isRemove",value = "0：未删除，1：已删除",required = true)
    private Integer isRemove;

    public String getOccurrenceTimeStr() {
        return occurrenceTimeStr;
    }

    public void setOccurrenceTimeStr(String occurrenceTimeStr) {
        this.occurrenceTimeStr = occurrenceTimeStr;
    }
//private List<PeccancyRecord> peccancyRecords;

    public String getCorpCode() {
        return corpCode;
    }

    public void setCorpCode(String corpCode) {
        this.corpCode = corpCode;
    }

    public String getCorpName() {
        return corpName;
    }

    public void setCorpName(String corpName) {
        this.corpName = corpName;
    }

    public String getAccidentBulletinId() {
        return accidentBulletinId;
    }

    public void setAccidentBulletinId(String accidentBulletinId) {
        this.accidentBulletinId = accidentBulletinId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAccidentType() {
        return accidentType;
    }

    public void setAccidentType(String accidentType) {
        this.accidentType = accidentType;
    }

    public String getAccidentTypeName() {
        return accidentTypeName;
    }

    public void setAccidentTypeName(String accidentTypeName) {
        this.accidentTypeName = accidentTypeName;
    }

    public Integer getAccidentLevel() {
        return accidentLevel;
    }

    public void setAccidentLevel(Integer accidentLevel) {
        this.accidentLevel = accidentLevel;
    }

    public String getDepartmentCode() {
        return departmentCode;
    }

    public void setDepartmentCode(String departmentCode) {
        this.departmentCode = departmentCode;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public String getOccurrencePlace() {
        return occurrencePlace;
    }

    public void setOccurrencePlace(String occurrencePlace) {
        this.occurrencePlace = occurrencePlace;
    }

    public Date getOccurrenceTime() {
        return occurrenceTime;
    }

    public void setOccurrenceTime(Date occurrenceTime) {
        this.occurrenceTime = occurrenceTime;
    }

    public String getAccidentContent() {
        return accidentContent;
    }

    public void setAccidentContent(String accidentContent) {
        this.accidentContent = accidentContent;
    }

    public String getAccidentRescue() {
        return accidentRescue;
    }

    public void setAccidentRescue(String accidentRescue) {
        this.accidentRescue = accidentRescue;
    }

    public String getAccidentLoss() {
        return accidentLoss;
    }

    public void setAccidentLoss(String accidentLoss) {
        this.accidentLoss = accidentLoss;
    }

    public String getEventDirectReason() {
        return eventDirectReason;
    }

    public void setEventDirectReason(String eventDirectReason) {
        this.eventDirectReason = eventDirectReason;
    }

    public String getEventIndirectReason() {
        return eventIndirectReason;
    }

    public void setEventIndirectReason(String eventIndirectReason) {
        this.eventIndirectReason = eventIndirectReason;
    }

    public String getEventSystemReason() {
        return eventSystemReason;
    }

    public void setEventSystemReason(String eventSystemReason) {
        this.eventSystemReason = eventSystemReason;
    }

    public String getRectificationRequirement() {
        return rectificationRequirement;
    }

    public void setRectificationRequirement(String rectificationRequirement) {
        this.rectificationRequirement = rectificationRequirement;
    }

    public Date getRectificationDeadline() {
        return rectificationDeadline;
    }

    public void setRectificationDeadline(Date rectificationDeadline) {
        this.rectificationDeadline = rectificationDeadline;
    }

    public Date getCompleteTime() {
        return completeTime;
    }

    public void setCompleteTime(Date completeTime) {
        this.completeTime = completeTime;
    }

    public BigDecimal getLossWorkingHours() {
        return lossWorkingHours;
    }

    public void setLossWorkingHours(BigDecimal lossWorkingHours) {
        this.lossWorkingHours = lossWorkingHours;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getAttachment() {
        return attachment;
    }

    public void setAttachment(String attachment) {
        this.attachment = attachment;
    }

    public String getPreviewAttachment() {
        return previewAttachment;
    }

    public void setPreviewAttachment(String previewAttachment) {
        this.previewAttachment = previewAttachment;
    }

    public String getRectifier() {
        return rectifier;
    }

    public void setRectifier(String rectifier) {
        this.rectifier = rectifier;
    }

    public String getRectifierName() {
        return rectifierName;
    }

    public void setRectifierName(String rectifierName) {
        this.rectifierName = rectifierName;
    }

    public String getManager() {
        return manager;
    }

    public void setManager(String manager) {
        this.manager = manager;
    }

    public String getManagerName() {
        return managerName;
    }

    public void setManagerName(String managerName) {
        this.managerName = managerName;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getIsRemove() {
        return isRemove;
    }

    public void setIsRemove(Integer isRemove) {
        this.isRemove = isRemove;
    }

    public String getCompleteTimeStr() {
        return completeTimeStr;
    }

    public void setCompleteTimeStr(String completeTimeStr) {
        this.completeTimeStr = completeTimeStr;
    }

    @Override
    public String toString() {
        return "AccidentReport{" +
                "corpCode='" + corpCode + '\'' +
                ", corpName='" + corpName + '\'' +
                ", accidentBulletinId='" + accidentBulletinId + '\'' +
                ", name='" + name + '\'' +
                ", accidentType='" + accidentType + '\'' +
                ", accidentTypeName='" + accidentTypeName + '\'' +
                ", accidentLevel=" + accidentLevel +
                ", departmentCode='" + departmentCode + '\'' +
                ", departmentName='" + departmentName + '\'' +
                ", occurrencePlace='" + occurrencePlace + '\'' +
                ", occurrenceTime=" + occurrenceTime +
                ", accidentContent='" + accidentContent + '\'' +
                ", accidentRescue='" + accidentRescue + '\'' +
                ", accidentLoss='" + accidentLoss + '\'' +
                ", eventDirectReason='" + eventDirectReason + '\'' +
                ", eventIndirectReason='" + eventIndirectReason + '\'' +
                ", eventSystemReason='" + eventSystemReason + '\'' +
                ", rectificationRequirement='" + rectificationRequirement + '\'' +
                ", rectificationDeadline=" + rectificationDeadline +
                ", completeTime=" + completeTime +
                ", lossWorkingHours=" + lossWorkingHours +
                ", remark='" + remark + '\'' +
                ", attachment='" + attachment + '\'' +
                '}';
    }
}
